package com.cskaoyan._02method._03methodcases;

import java.util.Scanner;
/**
 * @author Macro_Ray
 * @since 2024/3/5 20:01
 */
/* 某系统的数字密码(大于0)，比如1983，采用加密方式进行传输。
 * 规则如下:
 * 先得到每位数，然后每位数都加上5，再对10求余，最后将所有数字反转，得到一串新数*/
// 1983 6 14 13 8 6438 8346       3891 8 13 14 6  8 3 4 6
public class _01Test_06 {
    public static void main(String[] args) {
        int[] nums = getNumbers();
        int[] result = getArr(nums);
        System.out.print("加密后的数组为：");
        for (int j : result) {
            System.out.print(j);
        }
    }

    // 1.键盘输入数字
    public static int[] getNumbers() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入想要加密的数字：");
        int number = sc.nextInt();
        // 求数组的长度
        int temp = number;  // 临时记录number的值
        int count = 0;  // 记录数组长度
        while (number != 0) {
            number = number / 10;
            count++;
        }
        // 定义数组
        int[] arr = new int[count];  // 动态初始化数组，长度是count
        for (int i = 0; i < arr.length; i++) {
            int ge = temp % 10;
            temp = temp / 10;
            arr[i] = ge;
        }
        /*for (int j : arr) {
            System.out.print(j);
        }
        System.out.println();*/
        return arr; // 已反转的数组
    }

    // 2.遍历每位数，每位数都加上5，再对10取余
    public static int[] getArr(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            arr[i] = arr[i] + 5;
        }
        for (int i = 0; i < arr.length; i++) {
            arr[i] = arr[i] % 10;
        }
        return arr;
    }
    // 3.传入一个新的数组
    /*public static int[] getResult(int[] arr){

    }*/
}





